package top.api.service;

import top.api.domain.dto.AddArticleDto;
import top.api.domain.dto.UpdateArticleDto;
import top.api.domain.entity.Article;
import com.baomidou.mybatisplus.extension.service.IService;
import top.api.common.ResponseResult;
import top.api.domain.vo.HotArticleVo;

/**
* @author 27465
* @description 针对表【sg_article(文章表)】的数据库操作Service
* @createDate 2023-01-28 19:35:57
*/
public interface ArticleService extends IService<Article> {
    /**
     * 获取热门文章
     * @return
     */
    ResponseResult<HotArticleVo> hotArticleList();

    /**
     * 分页查询文章
     * @param pageNum
     * @param pageSize
     * @param categoryId 分类列表ID
     * @return
     */
    ResponseResult articleList(Integer pageNum, Integer pageSize, Long categoryId);

    /**
     * 查询文章详情
     * @param id
     * @return
     */
    ResponseResult getArticleDetail(Long id);

    /**
     * 添加文章阅读访问量
     * @param id
     * @return
     */
    ResponseResult updateViewCount(Long id);

    /**
     * 写博文
     * @param article
     * @return
     */
    ResponseResult add(AddArticleDto article);

    /**
     * admin 获取文章列表
     * @param pageNum
     * @param pageSize
     * @return
     */
    ResponseResult getlistPage(Integer pageNum, Integer pageSize, String title, String summary);

    /**
     * admin 获取文章详情
     * @param id
     * @return
     */
    ResponseResult getArticleInfo(Long id);

    /**
     * admin 修改文章
     * @param updateArticleDto
     * @return
     */
    ResponseResult updateArticle(UpdateArticleDto updateArticleDto);

    /**
     * admin 删除文章
     * @param id
     * @return
     */
    ResponseResult removeArticle(Long id);
}
